package com.cskaoyan.javase.array._3exception._3length;

/**
 * 附一个长度为0的数组的经典用途：
 * 假如方法的返回值是一个数组（或者其它容器），而又有无返回数据的需求，这个时候普遍有两种做法
 * 返回一个长度为0的数组（或者其它容器）
 * 返回null
 *
 *
 * @since 14:46
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo2 {
    public static void main(String[] args) {
        int[] result = getResult(10);
        System.out.println(result.length);
    }

    // 需求: 根据不同的情况,方法可能有两个结果,可能有一个结果,也可能没有结果
    // 这时要返回容器,比如数组/集合
    public static int[] getResult(int num) {
        /*
            num>0,方法返回两个结果
            num<0,方法返回一个结果
            num=0,方法没有返回结果
         */
        // 预先把结果数组定义出来,给一个声明
        int[] result = {};
        /*
        if (num > 0) {
            result = new int[]{1, 2};
        } else if (num < 0) {
            result = new int[]{1};
        } else {
            // result = new int[]{};
            result = null;
        }
        return result;*/
        if (num > 0) {
            result = new int[]{1, 2};
            return result;
        }
        // 代码运行到这里,说明num一定<=0
        if (num < 0) {
            result = new int[]{1};
            return result;
        }
        // 代码运行到这里,说明num一定=0
        return result;
    }
}
